/**
 * 
 */
package br.elite.bo;

import java.util.List;

import org.hibernate.TransactionException;

import br.elite.domain.Usuario;

/**
 * @author antonio 06-04-2011
 *
 */
public interface UsuarioBO {
	
	public static final String EBJ_SERVICE_NAME = "br/elite/bo/UsuarioBO";

	/** 
	 * Metodo que busca os usuarios com base na restricao.
	 * 
	 * @param usuario
	 * @return Uma lista de usuarios.
	 * @throws TransactionException
	 * 
	 */
	public List<Usuario> buscar(Usuario usuario) throws TransactionException;
	
	/**
	 * Metodo que busca todos os clentes cadastrados na base. 
	 * 
	 * @return Uma lista de usuarios.
	 * @throws TransactionException
	 */
	public List<Usuario> buscarTodos() throws TransactionException;
	
	/**
	 *  Metodo que salva um na base de dados.
	 * 
	 * @param usuario
	 * @throws TransactionException
	 */
	public void salvar(Usuario usuario) throws TransactionException;
	
	/**
	 * Metodo que consulta o usuario pelo codigo informado.
	 * 
	 * @param codigo
	 * @return 
	 */
	public Usuario buscarUsuarioPorCodigo(Long codigo);

	/**
	 * Metodo exclui um usuario cadastrado na base.
	 * 
	 * @param cliente
	 * @throws TransactionException
	 */
	public void deletar(Usuario cliente) throws TransactionException;
	
}
